package com.study.chunguard.common.utils;


import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * 摘自org.springframework.util.CollectionUtils,增加了findDuplicates方法。
 *
 * @author zhaowenhao
 */
public class CollectionUtils extends org.springframework.util.CollectionUtils {

    /**
     * 从集合中找出重复元素
     *
     * @param collection 集合
     * @return 重复元素集合
     */
    public static <T> Set<T> findDuplicates(Collection<T> collection) {
        Set<T> uniqueElements = new HashSet<>(collection.size());
        return collection.stream().filter(o -> !uniqueElements.add(o))
                .collect(Collectors.toSet());
    }

}
